/**
  ******************************************************************************
  * @file    oled.h
  * @author  TONLY
  * @version V1.0
  * @date    2022-01-01
  * @brief   oled的操作
  ******************************************************************************
  * @attention
  * 
  *	本程序只供学习使用，未经作者许可，不得用于其它任何用途
  *	版权所有，盗版必究
  *
  * <h2><center>&copy; COPYRIGHT 2022 华清-TONLY </center></h2>
  ******************************************************************************
  */  

/* Define to prevent recursive inclusion -------------------------------------*/ 
#ifndef __OLED_H
#define __OLED_H


/* Includes ------------------------------------------------------------------*/
#include "sys.h"


/* Exported define ----------------- -----------------------------------------*/

//DC功能 1为数据模式  2为命令模式
#define OLED_DAT	1			//数据
#define OLED_CMD	0			//命令


/* Exported functions ------------------------------------------------------- */

// OLED初始化
extern void OLED_Init(void);

//OLED 清屏
extern void OLED_Clear(void);

//OLED 更新显存
extern void OLED_RefreshGram(void);

//开启OLED显示
extern void OLED_DisplayON(void);

//关闭OLED显示 
extern void OLED_DisplayOFF(void);


/**
  * @brief 填充
  * @param @arg x1,y1,x2,y2 填充区域的对角坐标
  * @param @arg dot ：0 清空  1填充
  * @retval None
  */
extern void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);


/**
  * @brief 指定位置显示字符
  * @param @arg x ：指定位置横坐标（0~127）	WIDTH ：128
  * @param @arg y ：指定位置纵坐标（0~63）	HEIGHT：64
  * @param @arg chr ：字符
  * @param @arg f_w ：字宽  
  * @param @arg f_h ：字高 
  * @note 
*		f_w : f_h  ==>  6*8   6*12  12*24   
  * @param @arg mode ：0反白显示  1正常显示
  * @retval None
  */
extern void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 f_w,u8 f_h,u8 mode);


/**
  * @brief 指定位置显示数字
  * @param @arg x ：指定位置横坐标（0~127）	WIDTH ：128
  * @param @arg y ：指定位置纵坐标（0~63）	HEIGHT：64
  * @param @arg num ：数字 （0~4294967295）
  * @param @arg len ：数字的位数
  * @param @arg f_w ：字宽  
  * @param @arg f_h ：字高 
  * @note 
  *		f_w : f_h  ==>  6*8   6*12  12*24   
  * @param @arg mode ：0反白显示  1正常显示
  * @retval None
  */
extern void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 f_w,u8 f_h,u8 mode);


/**
  * @brief 指定位置显示数字
  * @param @arg x ：指定位置横坐标（0~127）	WIDTH ：128
  * @param @arg y ：指定位置纵坐标（0~63）	HEIGHT：64
  * @param @arg p ：字符串的首地址
  * @param @arg f_w ：字宽  
  * @param @arg f_h ：字高 
  * @note 
  *		f_w : f_h  ==>  6*8   6*12  12*24   
  * @param @arg mode ：0反白显示  1正常显示
  * @retval None
  */
extern void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 f_w,u8 f_h,u8 mode);


/**
  * @brief 显示图片
  * @param @arg x ：指定位置横坐标（0~127）	WIDTH ：128
  * @param @arg y ：指定位置纵坐标（0~63）	HEIGHT：64
  * @param @arg p ：图片起始地址
  * @param @arg p_w ：图片宽（单位像素）  
  * @param @arg p_h ：图片高（单位像素）    
  * @param @arg mode ：0反白显示  1正常显示
  * @retval None
  */
extern void OLED_ShowPicture(u8 x,u8 y,const u8 *p,u8 p_w,u8 p_h,u8 mode);


#endif /* __OLED_H */


/******************* (C) COPYRIGHT 2022 华清-TONLY *************END OF FILE****/
